A business process is a collection of interrelated activities, which accomplish a particular goal. A business process can be decomposed into process elements like sub-processes, manual and automated activities, business rules, internal business controls and data which related to a goal. Some of these process elements are statically modeled whereas others need to be invoked dynamically based on the context of execution. For these variable process elements, the choice of a particular variant of the process element depends on various dimensions like process being executed, events encountered, location of process instance, organization in which process instance is being executed and data for the process instance. Current Business Process Management Suites (BPMS) support the concept of dynamic binding of the variant using rules or some other means of querying. Dynamic binding involves configuring a “place holder” for the variant to be used and the particular variant details are passed or referenced based on the pre-defined conditions while execution.
The existing products are limited to dynamic binding of sub-processes and web services. Also the criteria for choice need to be defined at design time and at runtime the criteria would be checked and the needed variant must be made available. If the particular variant is not available, the system will raise an exception and abort the execution of the process instance. This necessitates the need to define the variants for all possible combination of enterprise dimensions namely process, events, locations, organizations and data. This effort is intensive, error prone and in some cases may not be economically viable or may not be required. Also, the possibility of dynamic binding is limited to sub-processes and service based activities, but the need is applicable for all the business models like business rules, internal business controls and data.
In view of forgoing discussion, there is a need of a declarative approach to define, configure and choose a particular variant to cater to newer developments in the enterprise while limiting the complexity and cost of maintaining the variants.